package com.springboot.frame.annotation;

import com.springboot.frame.enums.IdType;
import com.springboot.frame.key.AutoKeyGenerator;

import java.lang.annotation.*;

/**
 * JAVA主键生成器注解
 *
 * @author liheng
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface AutoGenerator {

  /**
   * UUID, 32UUID, 分布式ID SNOWFLAKE
   *
   * @return 主键类型
   */
  IdType idType();

  /**
   * 用户自定义主键生成规则
   *
   * @return 用户自定义主键，优先使用
   */
  Class<? extends AutoKeyGenerator> customKeyGenerator() default AutoKeyGenerator.class;

}
